目 录1. C语言概述81.1 什么是C语言81.2 为什么要学习C语言81.2.1 C语言特点81.2.2 学习C语言理由91.2.3 C语言应用领域91.2.4 C语言的简洁101.2.5 学习C语言的常见困惑111.3 第一个C语言程序:HelloWorld111.3.1 编写C语言代码:hello.c111.3.2 通过gcc编译C代码121.3.3 代码分析171.4 system函数181.4.1 system函数的使用181.5 C语言编译过程191.5.1 C程序编译步骤191.5.2 gcc编译过程201.5.3 查找程序所依赖的动态库211.6 CPU内部结构与寄存器(了解)221.6.1 64位和32位系统区别221.6.2 寄存器名字(了解)221.6.3 寄存器、缓存、内存三者关系221.7 汇编语言231.7.1 VS中C语言嵌套汇编代码(了解)231.7.2 VS反汇编231.8 集成开发环境IDE251.8.1 Qt Creator251.8.2 Microsoft Visual Studio262. 数据类型272.1 常量与变量272.1.1 关键字272.1.2 数据类型282.1.3 常量282.1.4 变量282.1.5 使用示例302.2整型:int302.2.1 整型变量的定义和输出302.2.2 整型变量的输入312.2.3 short、int、long、long long312.2.4 有符号数和无符号数区别332.3 sizeof关键字342.4字符型:char342.4.1 字符变量的定义和输出342.4.2 字符变量的输入352.4.2 ASCII对照表362.4.3 转义字符372.5实型(浮点型):float、double382.6 进制382.6.1 二进制392.6.2 八进制412.6.3 十六进制422.6.4 C语言如何表示相应进制数432.7 计算机内存数值存储方式432.7.1 原码432.7.2 反码442.7.3 补码442.7.4 补码的意义452.7.5 数值溢出462.8类型限定符472.9字符串格式化输出和输入472.9.1 字符串常量472.9.2 printf函数和putchar函数482.9.3 scanf函数与getchar函数493. 运算符与表达式503.1 常用运算符分类503.2 算术运算符503.3 赋值运算符513.4 比较运算符513.5 逻辑运算符513.6 运算符优先级513.7 类型转换533.7.1 隐式转换533.7.2 强制转换544. 程序流程结构544.1 概述544.2 选择结构554.2.1 if语句554.2.2 if…else语句554.2.3 if…else if…else语句574.2.4 三目运算符584.2.5 switch语句584.3 循环结构594.3.1 while语句594.3.2 do…while语句594.3.3 for语句604.3.4 嵌套循环604.4 跳转语句break、continue、goto614.3.1 break语句614.3.2 continue语句624.3.3 goto语句(无条件跳转,尽量少用)625. 数组和字符串635.1 概述635.2 一维数组645.2.1 一维数组的定义和使用645.2.2 一维数组的初始化645.2.3 数组名655.2.4 强化训练655.3二维数组675.3.1 二维数组的定义和使用675.3.2 二维数组的初始化685.3.3 数组名695.3.4 强化训练705.4多维数组(了解)715.5 字符数组与字符串715.5.1 字符数组与字符串区别715.5.2 字符串的初始化725.5.3 字符串的输入输出735.5.4 强化训练:字符串追加756. 函数766.1 概述766.1.1 函数分类766.1.2 函数的作用766.1.3 函数的调用:产生随机数786.2 函数的定义796.2.1 函数定义格式796.2.2 函数名字、形参、函数体、返回值796.3 函数的调用816.3.1函数执行流程816.3.2 函数的形参和实参826.3.3 无参函数调用826.3.4有参函数调用836.3.5 函数返回值846.4 函数的声明856.5 main函数与exit函数856.6 多文件(分文件)编程866.6.1 分文件编程866.6.2 防止头文件重复包含867. 指针877.1 概述877.1.1 内存877.1.2 物理存储器和存储地址空间887.1.3 内存地址887.1.4 指针和指针变量897.2 指针基础知识897.2.1 指针变量的定义和使用897.2.2 通过指针间接修改变量的值907.2.3 指针大小907.2.4 野指针和空指针917.2.5万能指针void *917.2.6 const修饰的指针变量927.3 指针和数组927.3.1 数组名927.3.2 指针操作数组元素927.3.3 指针加减运算937.3.4 指针数组957.4 多级指针957.5 指针和函数967.5.1 函数形参改变实参的值967.6.2 数组名做函数参数967.6.3 指针做为函数的返回值977.7 指针和字符串977.7.1 字符指针977.7.2 字符指针做函数参数987.7.3 const修饰的指针变量987.7.4 指针数组做为main函数的形参997.7.5 项目开发常用字符串应用模型1007.7.8 字符串处理函数1047.8 指针小结1098. 内存管理1108.1 作用域1108.1.1 局部变量1108.1.2 静态(static)局部变量1118.1.3 全局变量1118.1.4 静态(static)全局变量1128.1.5 extern全局变量声明1128.1.6 全局函数和静态函数1128.1.7 总结1138.2 内存布局1138.2.1 内存分区1138.2.2 存储类型总结1158.2.3内存操作函数1168.2.4 堆区内存分配和释放1188.3 内存分区代码分析1199. 复合类型(自定义类型)1219.1 结构体1219.1.1 概述1219.1.2 结构体变量的定义和初始化1229.1.3 结构体成员的使用1239.1.4 结构体数组1239.1.5 结构体套结构体1249.1.6 结构体赋值1259.1.7 结构体和指针1259.1.8 结构体做函数参数1279.2 共用体(联合体)1309.3 枚举1319.4 typedef13210. 文件操作13210.1 概述13210.1.1磁盘文件和设备文件13210.1.2 磁盘文件的分类13310.1.3 文本文件和二进制文件13310.2.1 文件指针13410.2.2 文件的打开13510.2.3 文件的关闭13610.3 文件的顺序读写13710.3.1 按照字符读写文件fgetc、fputc13710.3.2按照行读写文件fgets、fputs13910.3.3按照格式化文件fprintf、fscanf14110.3.4按照块读写文件fread、fwrite14210.4 文件的随机读写14410.5 Windows和Linux文本文件区别14510.6 获取文件状态14610.7 删除文件、重命名文件名14710.8 文件缓冲区14810.8.1文件缓冲区14810.8.2磁盘文件的存取14810.8.3更新缓冲区149
评论